Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace inline styles with css prop in src/ folder #201563

Merged
merged 2 commits into from
Dec 2, 2024

Conversation

albertoblaz
Copy link
Contributor

@albertoblaz albertoblaz commented Nov 25, 2024

Summary

Part of the resolution of this issue:

Removes the style prop in React components and elements to avoid using inline styles. Instead, it uses now the emotion.css prop to dynamically attach all styles to the native class attribute.

Motivation

Using inline styles at scale causes a performance penalty at rendering time. It's way more efficient to attach styles to a single or several classnames instead.

How to review

From Emotion's official docs:

Note

Any component or element that accepts a className prop can also use the css prop. The styles supplied to the css prop are evaluated and the computed class name is applied to the className prop.

Components that are safe to migrate from style to css:

  • React elements
  • React components exposed by EUI (they all support a className prop and the Babel plugin is enabled throughout Kibana)

Components where styling might break:

  • Custom component we wrote that currently don't accept a className prop.
  • Specific 3P components that pass in a style prop to our components i.e. react-window (it calculates the dynamic position of all virtualized elements and hides the ones outside the visible fold)
  • Specific 3P components that expect a style prop to be styled i.e. charts, etc.

Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

  • Unit or functional tests were updated or added to match the most common scenarios
  • This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The release_note:breaking label should be applied in these situations.
  • Flaky Test Runner was used on any tests changed
  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines

Identify risks

Main risk is breaking the UI by not applying or incorrectly applying the styling. This was explained in the "How to review" section above. The risk has low severity though. The mitigation plan will simply be reverting the commit asap not to affect production and test locally until it's fixed./

@albertoblaz albertoblaz added release_note:skip Skip the PR/issue when compiling release notes v9.0.0 backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) backport:version Backport to applied version labels v8.18.0 labels Nov 25, 2024
@albertoblaz albertoblaz self-assigned this Nov 25, 2024
@albertoblaz albertoblaz marked this pull request as ready for review November 25, 2024 12:35
@albertoblaz albertoblaz requested review from a team as code owners November 25, 2024 12:35
@botelastic botelastic bot added the Feature:ExpressionLanguage Interpreter expression language (aka canvas pipeline) label Nov 25, 2024
Copy link
Contributor

@SiddharthMantri SiddharthMantri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security changes LGTM.

@kibanamachine
Copy link
Contributor

Flaky Test Runner Stats

🟠 Some tests failed. - kibana-flaky-test-suite-runner#7489

[❌] x-pack/test/functional/apps/lens/group6/config.ts: 0/25 tests passed.

see run history

Copy link
Contributor

@Heenawter Heenawter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code review + quick local test ensure a subset of the components touched continue to render properly. LGTM 👍

@@ -38,7 +38,7 @@ export const SearchSessionName: React.FC<SearchSessionNameProps> = ({ name, edit
justifyContent={'spaceBetween'}
gutterSize={'none'}
// padding to align with compressed input size
style={{ paddingTop: 4, paddingBottom: 4 }}
css={{ paddingTop: 4, paddingBottom: 4 }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally we'd replace static numbers with EUI tokens (e.g. euiTheme.size.xs), but that's probably out of scope for this PR. Just mentioning it here to spread the knowledge/for the future

x-pack/test/functional/apps/lens/group6/legacy_metric.ts Outdated Show resolved Hide resolved
Copy link
Member

@sabarasaba sabarasaba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kibana management changes lgtm

@albertoblaz albertoblaz force-pushed the replace-style-src branch 2 times, most recently from db4cfc7 to d3b9c47 Compare November 27, 2024 11:51
Copy link
Contributor

@cee-chen cee-chen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes in this PR LGTM at this point! :)

Copy link
Contributor

@jughosta jughosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Data Discovery changes LGTM

Copy link
Contributor

@stratoula stratoula left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ES|QL changes LGTM!

Copy link
Contributor

@Dosant Dosant left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shared-ux lgtm! only static styles changes

@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
console 206.4KB 206.6KB +168.0B
controls 493.8KB 493.9KB +67.0B
data 52.4KB 52.5KB +36.0B
dataViewEditor 49.4KB 49.4KB +61.0B
dataViewFieldEditor 177.7KB 177.8KB +116.0B
dataViewManagement 139.9KB 140.1KB +143.0B
devTools 7.9KB 8.0KB +19.0B
discover 812.8KB 812.9KB +132.0B
expressionError 14.3KB 14.4KB +62.0B
expressionLegacyMetricVis 11.9KB 12.0KB +23.0B
expressionMetricVis 5.2KB 5.2KB -17.0B
expressionPartitionVis 35.6KB 35.6KB +32.0B
expressionRepeatImage 1.2KB 1.2KB +28.0B
expressionXY 127.7KB 127.8KB +83.0B
home 152.2KB 152.2KB +19.0B
imageEmbeddable 69.4KB 69.5KB +43.0B
inputControlVis 52.3KB 52.3KB +29.0B
inspector 28.3KB 28.3KB +28.0B
presentationPanel 15.3KB 15.4KB +38.0B
presentationUtil 87.4KB 77.1KB -10.3KB
savedObjectsManagement 86.9KB 86.9KB +30.0B
uiActionsEnhanced 136.2KB 136.4KB +239.0B
unifiedDocViewer 126.0KB 126.0KB +30.0B
unifiedSearch 357.5KB 357.7KB +229.0B
visDefaultEditor 95.2KB 95.2KB +29.0B
visTypeTimeseries 507.0KB 507.1KB +110.0B
visualizations 318.3KB 318.3KB +77.0B
total -8.5KB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
charts 43.1KB 43.1KB +32.0B
dataViewFieldEditor 27.0KB 27.1KB +36.0B
esqlDataGrid 9.3KB 9.4KB +38.0B
expressions 100.3KB 100.3KB +27.0B
guidedOnboarding 29.9KB 29.9KB +30.0B
interactiveSetup 59.9KB 60.0KB +128.0B
kibanaReact 39.2KB 39.4KB +202.0B
presentationUtil 31.6KB 31.7KB +22.0B
visDefaultEditor 24.3KB 24.3KB +23.0B
total +538.0B

History

cc @albertoblaz

@albertoblaz albertoblaz merged commit 6aaecd0 into elastic:main Dec 2, 2024
9 checks passed
@albertoblaz albertoblaz deleted the replace-style-src branch December 2, 2024 13:16
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/12120160086

kibanamachine pushed a commit to kibanamachine/kibana that referenced this pull request Dec 2, 2024
## Summary

Part of the resolution of this issue:
- elastic#149246

Removes the `style` prop in React components and elements to avoid using
inline styles. Instead, it uses now the `emotion.css` prop to
dynamically attach all styles to the native `class` attribute.

### Motivation

Using inline styles at scale causes a performance penalty at rendering
time. It's way more efficient to attach styles to a single or several
classnames instead.

### How to review

From [Emotion's official
docs](https://emotion.sh/docs/css-prop#style-precedence):

> [!NOTE]
> Any component or element that accepts a `className` prop can also use
the `css` prop. The styles supplied to the `css` prop are evaluated and
the computed class name is applied to the `className` prop.

Components that are safe to migrate from `style` to `css`:
- React elements
- React components exposed by EUI (they all support a `className` prop
and the [Babel
plugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop) is
enabled throughout Kibana)

Components where styling might break:
- Custom component we wrote that currently don't accept a `className`
prop.
- Specific 3P components that pass in a `style` prop to our components
i.e. `react-window` (it calculates the dynamic position of all
virtualized elements and hides the ones outside the visible fold)
- Specific 3P components that expect a `style` prop to be styled i.e.
charts, etc.

### Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

Main risk is breaking the UI by not applying or incorrectly applying the
styling. This was explained in the "How to review" section above. The
risk has **low severity** though. The mitigation plan will simply be
reverting the commit asap not to affect production and test locally
until it's fixed./

(cherry picked from commit 6aaecd0)
@kibanamachine
Copy link
Contributor

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Dec 2, 2024
…x60; folder (#201563) (#202460)

# Backport

This will backport the following commits from `main` to `8.x`:
- [Replace inline styles with &#x60;css&#x60; prop in &#x60;src/&#x60;
folder (#201563)](#201563)

<!--- Backport version: 9.4.3 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Alberto
Blázquez","email":"[email protected]"},"sourceCommit":{"committedDate":"2024-12-02T13:16:23Z","message":"Replace
inline styles with `css` prop in `src/` folder (#201563)\n\n##
Summary\r\n\r\nPart of the resolution of this issue: \r\n-
https://github.com/elastic/kibana/issues/149246\r\n\r\nRemoves the
`style` prop in React components and elements to avoid using\r\ninline
styles. Instead, it uses now the `emotion.css` prop to\r\ndynamically
attach all styles to the native `class` attribute.\r\n\r\n###
Motivation\r\n\r\nUsing inline styles at scale causes a performance
penalty at rendering\r\ntime. It's way more efficient to attach styles
to a single or several\r\nclassnames instead.\r\n\r\n### How to
review\r\n\r\nFrom [Emotion's
official\r\ndocs](https://emotion.sh/docs/css-prop#style-precedence):\r\n\r\n>
[!NOTE]\r\n> Any component or element that accepts a `className` prop
can also use\r\nthe `css` prop. The styles supplied to the `css` prop
are evaluated and\r\nthe computed class name is applied to the
`className` prop.\r\n\r\nComponents that are safe to migrate from
`style` to `css`:\r\n- React elements\r\n- React components exposed by
EUI (they all support a `className` prop\r\nand the
[Babel\r\nplugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop)
is\r\nenabled throughout Kibana)\r\n\r\nComponents where styling might
break:\r\n- Custom component we wrote that currently don't accept a
`className`\r\nprop.\r\n- Specific 3P components that pass in a `style`
prop to our components\r\ni.e. `react-window` (it calculates the dynamic
position of all\r\nvirtualized elements and hides the ones outside the
visible fold)\r\n- Specific 3P components that expect a `style` prop to
be styled i.e.\r\ncharts, etc.\r\n\r\n### Checklist\r\n\r\nCheck the PR
satisfies following conditions. \r\n\r\nReviewers should verify this PR
satisfies this list as well.\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [x] This was
checked for breaking HTTP API changes, and any breaking\r\nchanges have
been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [x] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [x] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nMain risk is breaking the UI by not applying or
incorrectly applying the\r\nstyling. This was explained in the \"How to
review\" section above. The\r\nrisk has **low severity** though. The
mitigation plan will simply be\r\nreverting the commit asap not to
affect production and test locally\r\nuntil it's
fixed./","sha":"6aaecd0d8f4021d0b6dab350876367e56e1fa70c","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["Feature:ExpressionLanguage","release_note:skip","v9.0.0","backport:prev-minor","backport:version","v8.18.0"],"title":"Replace
inline styles with `css` prop in `src/`
folder","number":201563,"url":"https://github.com/elastic/kibana/pull/201563","mergeCommit":{"message":"Replace
inline styles with `css` prop in `src/` folder (#201563)\n\n##
Summary\r\n\r\nPart of the resolution of this issue: \r\n-
https://github.com/elastic/kibana/issues/149246\r\n\r\nRemoves the
`style` prop in React components and elements to avoid using\r\ninline
styles. Instead, it uses now the `emotion.css` prop to\r\ndynamically
attach all styles to the native `class` attribute.\r\n\r\n###
Motivation\r\n\r\nUsing inline styles at scale causes a performance
penalty at rendering\r\ntime. It's way more efficient to attach styles
to a single or several\r\nclassnames instead.\r\n\r\n### How to
review\r\n\r\nFrom [Emotion's
official\r\ndocs](https://emotion.sh/docs/css-prop#style-precedence):\r\n\r\n>
[!NOTE]\r\n> Any component or element that accepts a `className` prop
can also use\r\nthe `css` prop. The styles supplied to the `css` prop
are evaluated and\r\nthe computed class name is applied to the
`className` prop.\r\n\r\nComponents that are safe to migrate from
`style` to `css`:\r\n- React elements\r\n- React components exposed by
EUI (they all support a `className` prop\r\nand the
[Babel\r\nplugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop)
is\r\nenabled throughout Kibana)\r\n\r\nComponents where styling might
break:\r\n- Custom component we wrote that currently don't accept a
`className`\r\nprop.\r\n- Specific 3P components that pass in a `style`
prop to our components\r\ni.e. `react-window` (it calculates the dynamic
position of all\r\nvirtualized elements and hides the ones outside the
visible fold)\r\n- Specific 3P components that expect a `style` prop to
be styled i.e.\r\ncharts, etc.\r\n\r\n### Checklist\r\n\r\nCheck the PR
satisfies following conditions. \r\n\r\nReviewers should verify this PR
satisfies this list as well.\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [x] This was
checked for breaking HTTP API changes, and any breaking\r\nchanges have
been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [x] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [x] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nMain risk is breaking the UI by not applying or
incorrectly applying the\r\nstyling. This was explained in the \"How to
review\" section above. The\r\nrisk has **low severity** though. The
mitigation plan will simply be\r\nreverting the commit asap not to
affect production and test locally\r\nuntil it's
fixed./","sha":"6aaecd0d8f4021d0b6dab350876367e56e1fa70c"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/201563","number":201563,"mergeCommit":{"message":"Replace
inline styles with `css` prop in `src/` folder (#201563)\n\n##
Summary\r\n\r\nPart of the resolution of this issue: \r\n-
https://github.com/elastic/kibana/issues/149246\r\n\r\nRemoves the
`style` prop in React components and elements to avoid using\r\ninline
styles. Instead, it uses now the `emotion.css` prop to\r\ndynamically
attach all styles to the native `class` attribute.\r\n\r\n###
Motivation\r\n\r\nUsing inline styles at scale causes a performance
penalty at rendering\r\ntime. It's way more efficient to attach styles
to a single or several\r\nclassnames instead.\r\n\r\n### How to
review\r\n\r\nFrom [Emotion's
official\r\ndocs](https://emotion.sh/docs/css-prop#style-precedence):\r\n\r\n>
[!NOTE]\r\n> Any component or element that accepts a `className` prop
can also use\r\nthe `css` prop. The styles supplied to the `css` prop
are evaluated and\r\nthe computed class name is applied to the
`className` prop.\r\n\r\nComponents that are safe to migrate from
`style` to `css`:\r\n- React elements\r\n- React components exposed by
EUI (they all support a `className` prop\r\nand the
[Babel\r\nplugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop)
is\r\nenabled throughout Kibana)\r\n\r\nComponents where styling might
break:\r\n- Custom component we wrote that currently don't accept a
`className`\r\nprop.\r\n- Specific 3P components that pass in a `style`
prop to our components\r\ni.e. `react-window` (it calculates the dynamic
position of all\r\nvirtualized elements and hides the ones outside the
visible fold)\r\n- Specific 3P components that expect a `style` prop to
be styled i.e.\r\ncharts, etc.\r\n\r\n### Checklist\r\n\r\nCheck the PR
satisfies following conditions. \r\n\r\nReviewers should verify this PR
satisfies this list as well.\r\n\r\n- [x] [Unit or
functional\r\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\r\nwere
updated or added to match the most common scenarios\r\n- [x] This was
checked for breaking HTTP API changes, and any breaking\r\nchanges have
been approved by the breaking-change committee.
The\r\n`release_note:breaking` label should be applied in these
situations.\r\n- [x] [Flaky
Test\r\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\r\nused on any tests changed\r\n- [x] The PR description includes
the appropriate Release Notes section,\r\nand the correct
`release_note:*` label is applied per
the\r\n[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)\r\n\r\n###
Identify risks\r\n\r\nMain risk is breaking the UI by not applying or
incorrectly applying the\r\nstyling. This was explained in the \"How to
review\" section above. The\r\nrisk has **low severity** though. The
mitigation plan will simply be\r\nreverting the commit asap not to
affect production and test locally\r\nuntil it's
fixed./","sha":"6aaecd0d8f4021d0b6dab350876367e56e1fa70c"}},{"branch":"8.x","label":"v8.18.0","branchLabelMappingKey":"^v8.18.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Alberto Blázquez <[email protected]>
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Dec 9, 2024
## Summary

Part of the resolution of this issue: 
- elastic#149246

Removes the `style` prop in React components and elements to avoid using
inline styles. Instead, it uses now the `emotion.css` prop to
dynamically attach all styles to the native `class` attribute.

### Motivation

Using inline styles at scale causes a performance penalty at rendering
time. It's way more efficient to attach styles to a single or several
classnames instead.

### How to review

From [Emotion's official
docs](https://emotion.sh/docs/css-prop#style-precedence):

> [!NOTE]
> Any component or element that accepts a `className` prop can also use
the `css` prop. The styles supplied to the `css` prop are evaluated and
the computed class name is applied to the `className` prop.

Components that are safe to migrate from `style` to `css`:
- React elements
- React components exposed by EUI (they all support a `className` prop
and the [Babel
plugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop) is
enabled throughout Kibana)

Components where styling might break:
- Custom component we wrote that currently don't accept a `className`
prop.
- Specific 3P components that pass in a `style` prop to our components
i.e. `react-window` (it calculates the dynamic position of all
virtualized elements and hides the ones outside the visible fold)
- Specific 3P components that expect a `style` prop to be styled i.e.
charts, etc.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

Main risk is breaking the UI by not applying or incorrectly applying the
styling. This was explained in the "How to review" section above. The
risk has **low severity** though. The mitigation plan will simply be
reverting the commit asap not to affect production and test locally
until it's fixed./
CAWilson94 pushed a commit to CAWilson94/kibana that referenced this pull request Dec 12, 2024
## Summary

Part of the resolution of this issue: 
- elastic#149246

Removes the `style` prop in React components and elements to avoid using
inline styles. Instead, it uses now the `emotion.css` prop to
dynamically attach all styles to the native `class` attribute.

### Motivation

Using inline styles at scale causes a performance penalty at rendering
time. It's way more efficient to attach styles to a single or several
classnames instead.

### How to review

From [Emotion's official
docs](https://emotion.sh/docs/css-prop#style-precedence):

> [!NOTE]
> Any component or element that accepts a `className` prop can also use
the `css` prop. The styles supplied to the `css` prop are evaluated and
the computed class name is applied to the `className` prop.

Components that are safe to migrate from `style` to `css`:
- React elements
- React components exposed by EUI (they all support a `className` prop
and the [Babel
plugin](https://www.npmjs.com/package/@emotion/babel-preset-css-prop) is
enabled throughout Kibana)

Components where styling might break:
- Custom component we wrote that currently don't accept a `className`
prop.
- Specific 3P components that pass in a `style` prop to our components
i.e. `react-window` (it calculates the dynamic position of all
virtualized elements and hides the ones outside the visible fold)
- Specific 3P components that expect a `style` prop to be styled i.e.
charts, etc.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [x] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)

### Identify risks

Main risk is breaking the UI by not applying or incorrectly applying the
styling. This was explained in the "How to review" section above. The
risk has **low severity** though. The mitigation plan will simply be
reverting the commit asap not to affect production and test locally
until it's fixed./
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:prev-minor Backport to (8.x) the previous minor version (i.e. one version back from main) backport:version Backport to applied version labels Feature:ExpressionLanguage Interpreter expression language (aka canvas pipeline) release_note:skip Skip the PR/issue when compiling release notes v8.18.0 v9.0.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.